DMapEdit v4.0 - a doom map editor! Section Title [1] Legal stuff [2] About DMapEdit [3] New stuff since v3.01 [4] New stuff since v3.0 [5] New stuff since v2.1 [6] New stuff since v2.0 [7] New stuff since v1.1 [8] Future expansion [9] Introduction [10] How do I play a map I made? [11] Keyboard commands [12] Pop-up windows [13] Thing display filter [14] Thing editing [15] Line editing [16] Sector editing [17] Marking [18] Making maps from scatch [19] Misc. notes [20] Alternate video modes [21] Thanks Note: if you are viewing this with a decent text file viewer, then you can get to the section you are interested in using it's "search for" command. All sections will start with it's number surrounded by []'s, as shown above, so search by that. --------------- [1] Legal stuff --------------- DMapEdit is my trademark Doom is a trademark of id Software Inc. UniVesa - Universal VESA TSR is copyright (C) 1993 Kendall Bennett. Ms-windows is a trademark of Microsoft Copyright (C) 1994 Jason Hoffoss. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Since I am not a lawyer myself, I do not know exactly what is allowed and what isn't. Therefore, in addition to GNU General Public License (refered to as GPL from this point on in this document), the following restrictions also apply. In the event that I am not allowed to enforce further restrictions on my product under the GPL, this program is not under the terms of the GPL. Should any legal events occur requiring a determination be made on weather or not DMapEdit falls under the terms of the GPL, it can be determined at that time. So, here are the further restrictions. You may not sell this program for more than $5, if you decide to do so at all. This is only if you sell it as a lone product. If you sell it as part of a package (more than one program), this does not apply, and you may set whatever price you deem appropriate for the package. In either case, this is still my program, and you may not modify it, claim ownership or authorship of it, etc. You may modify and/or create other programs based on DMapEdit, however they must follow the restriction listed within the source code. Each source file that is part of the DMapEdit program has a header that explains the restrictions on it. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Even if DMapEdit doesn't in fact fall under the GPL, there is still to warranty on DMapEdit. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. id Software's "data utility license": "DOOM(tm) is a trademark of id Software, Inc. The Doom(tm) characters and the id Software logo are trademarks of id Software, Inc. Doom(tm) Copyright(c) 1993. id Software, Inc. All rights reserved. This utility product is not a product of id Software, Inc. and has not been approved by id Software, Inc. id Software will not provide technical support for this product. The purchaser of this utility product may not distribute for money or other consideration any software data created and/or modified by the use of this utility product." This Editor is not a product of id Software and id Software cannot and will not provide support it, nor for maps created with it, nor for DOOM itself if you modify the DOOM.WAD or DOOM2.WAD (IWAD) files. Same is true for the HERETIC.WAD and HEXEN.WAD files. If any lawyer types happen to notice any 'holes' in this section, please feel free to let me know about it. As I said, I am not a lawyer, and so really don't know much about lawyery things. :) ------------------ [2] About DMapEdit ------------------ Welcome to DMapEdit. DMapEdit is a true, full-featured map editor. It allows full editing of original and add-on doom maps, and creation of new maps from scratch. My philosophy in writting DMapEdit is to create a map editor that is BOTH very powerful and easy to use. Many people seem to beleive that you can't have both, and that one cancels out the other. I, however, beleive that it can be done, and DMapEdit is my proof of this. It is a little harder to accomplish such a programming feat, but far from impossible. It can do almost anything any other editor can, and usually easier. If it can't, it's probably something that has little value in map making anyway. Basically, you have full control over everything of value, while the computer does everything else for you, allowing maps to be built more quickly, easily, and reliably. If DMapEdit doesn't do something that you want it to, and have an idea on how it should be done, ideas are always welcome (email prefered). DMapEdit is a shareware product. Though it is no longer crippled in any way, you are required to register this product if you decide to use it. You may evaluate it for a period of 15 days, after which you must decide if you wish to register, or delete it from your system. Registeration is only $10, which should present no problem for anyone. (If you can afford to use a computer, $10 shouldn't be outside your budget!) To register this program, simply send me a $10 check, money order or whatever. My address is: Jason Hoffoss 10321 110th st. N. Stillwater, MN 55082 When I receive your order, I will include your name to my list of registered users. You only ever need to register once, as this will last for the life of this program. When later versions become available, I will distribute them electronically through the Internet and Bulletin Board systems. If you can't get it through these methods, or don't want to wait for it to show up on your BBS's, you can send me more than $10, and I will send you upgrades by postal mail when they become available. Each upgrade I send will cost $2.50, so $15 gets your 2 upgrades, $20 gets you 4, and $25 gets you 6, etc.. If you want me to send it by some special method (Express Overnight or whatever), then make sure you send me enough money to cover such mailing methods, or else it goes by postal mail (about a dollar goes to mailing by this method). I have bubble-lined mailing envelopes I use, by the way, so you don't need to send me an envelope to use or anything. And hey, send me a letter if you want. Tell me you love/hate this editor, or whatever. I don't have unlimited ideas, and many improvements and idea for DMapEdit come from the users. Tell me how to make it better for you! E-Mail can be send to me on this BBS: Erebus BBS (612) 439-7808 or on internet by account is hoffo002@gold.tc.umn.edu for anyone wishing to leave me email there. I read my internet email daily, while I don't call BBS's much anymore. Why bother when you have internet? ------------------------- [3] New stuff since v3.01 ------------------------- * Whole new interface! Menus, toolbar, info boxes! Better than windows itself! (only my opinion, of course) And a lot more colorful too. Dunno about Win95 yet, since I still haven't even seen it. :) If you are going to spend hours building maps, shouldn't it be plesant to look at? * Better docs! It talk in detail not only how to use DMapEdit, but how to go about making maps, what rules need to be followed, how doors, lift, etc work, you name it. And because it is split up into several files, the info you are looking for is generally easier to find. There's even a DMapEdit FAQ. * Copy and paste! Duplicate whole groups of Things, Lines, etc. and put copies elsewhere on your map. * Template support! Mark a group of objects, copy them, and save to a template file to use later in other pwads. Grab template files from friends and build a prefabricated structures library. Distribute whole libraries for others to use. You can use templates to snag an area from another pwad and put it into one of yours too. Templates are the future of doom map editing, and will make map creating a snap. * Map scrollable with the mouse. Bring the cursor near the edge of the screen, and it changes to an arrow. Press the left mouse button to scroll a single step, or the right mouse button to scroll continuously. Also, holding shift, pressing a mouse button and dragging will drag the map viewing area. Nice for positioning it exactly where you want it. * Several preferences selectable from the preferences menu. Things like zoom on cursor position, grid size follows roundoff value, etc. * File picklist system, much like most DOS programs use. See all the PWADs you have in your directory and click on the one you want to load. You can even use the 'del' key to remove PWADs you want to delete. * One of the best map error checking systems of any editor. If your map has an error, chances are DMapEdit will find it! The only thing I know of that it won't find is HOM. This is something that is almost impossible to detect. * Node generator has been improved. It is more reliable now, and faster. It is not based on any other node builder (DEU, BSP, etc), but written from scratch by yours truely. Ideas from the Renegade Node builder have been used to improve mine, however. * Linetype picklist added. No need to try and remember linetype numbers, or look up linetypes in a list your printed out or anything. * Map rating system for all difficulty settings. Nice for telling how hard a map is likely to be, and to see if difficulty settings are even implimented in a map. * Two bugs fixed: Line color not updated after editing it, and the cancel button not reachable in 1024x768 graphics mode. ------------------------ [4] New stuff since v3.0 ------------------------ * Combined the shareware module (unreg.c) and registered module (reg.c) into a single module, which is now used. It's basically just the registered version now, except for messages and such. * Fixed a minor bug in the texture picklist. No, it's not the major bug that some people are talking about. I haven't found that one yet, and may not anytime in the near future. This one's hiding really well in there. I don't know if it's every really in the texture picklist routines, or is somewhere else, and the picklist just shows the symptoms of it. If anyone out there can debug, and has this problem on their system (it doesn't show up on my system normally) and are interested in trying to find it, THANX! Your name will go to the front of the 'thanks you' list at the end of this file. * Fixed the group line edit bugs. Now, when you change something, it will actually be changed! * Fixed a bug in saving maps. Some people said that texture names were getting screwed up after a blockmap generation. Well, close. Actually it happened when you saved a map with the size of the sidedef memory block >64k. Fixed now, though. * Included is a very helpful file called 'concepts.doc', which I wrote to help anyone out there who doesn't have god-like knowledge of the internal workings of Doom by reading and fully understanding the unofficial Doom specs. It's an excellent file for programmers and hackers, but it's not really written for map designers. So, 'concepts.doc' will give you all the basic concepts and such you need to know instead. Let me know if you have any ideas/complains/feedback on this file. I'm more of a programmer than a docs writter.. ------------------------ [5] New stuff since v2.1 ------------------------ * Memory usage has been drastically altered. You should be able to use it with less memory now, and with larger files, as long as you have memory for it all. The old limits I had for everything are now gone. It still uses base memory, and not EMS or XMS. Until I know how to use these memories, it will stay this way. If your map gets too big to for DMapEdit, it's probably too to play with Doom without it being slow on the average pc. Split it into a few missions instead! * Texture picklists! No need to try and remember/figure out all the wall texture names. If you become familiar with the names, though, and know just what texture you want, you can still just type it in, (for power users like myself), by clicking with the right mouse button instead. * Zooming, roundoff, and the grid has been changed around. Zooming has "half-steps" now. The grid now displays to the scale of the roundoff level, unless the space would fall below 7 pixils between lines. In this case, every other line/fourth line, eighth/etc is drawn instead. * Made a new hilight method, which is now the default. If you liked the old way better, though, it is still possible to use that. Just put "flash mode=old" in the INI file. Which brings us to: * INI file support. You change all sorts of default settings in the "dmapedit.ini" file. Take a look at it. A list of all INI file variables and values is discussed in "dme_ini.doc". * There is now a crosshair that shows where adding things, etc will be put. With roundoff values greater than 1, this position can be different from the mouse hotspot. ("roundoff" is know and "snap-to grid" in some other editors) If it gets on your nerves or something, you can turn it off with the 'x' key. * Node generator has been improved to eliminate the "sliver" effect it used to produce. The "sliver" effect is a very narrow vertical line that you can see through while playing doom. The speed hasn't been changed from v2.1. This will be worked on for the next version, hopefully. * Loading/saving to a working datafile is no longer supported. Such files are obsolete, and PWADs should be used instead. The new load/save routines have been greatly improved as well. "L" and "S" are now used to load/save to/from a PWAD, which is first prompts your for. "Alt-L" and "Alt-S" will also load/save to/from a PWAD, but it doesn't prompt you for the name first, unless this is the first time it has asked you. * Ability to re-configure the mouse buttons. Key to do this is . Then just click the function button with the whatever mouse button you wish that button to be used for. * Ability to mark objects (an object is a Thing, Vertex, Line, Sidedef, or Sector). Except for Things, all marked objects affect the marking of the remaining object. Thus, if you mark a sector, it also marks all the lines touching the sector, all sidedefs facing the sector, and all vertexes involved. Once you have marked object(s), you can do several things with them as a group. See the appropriate section below for more information. * Ok and Cancel buttons have been added to the relevent windows. The key simulates the Ok button, and for Cancel also. * Most of the edit modes have been changed around a little to be more intuative and useful. * More error checking routines have been implemented. * Many bugs have been corrected from v2.1, including: change level bug, which reported inability to open "", display filter buttons wouldn't light up, "sliver" bug in node generator, creating 'donut sectors.' That's all I can remember offhand. ------------------------ [6] New stuff since v2.0 ------------------------ * Shareware version will allow you to save maps of limited size now. A map such as E1M1 is too big. In fact, all the original maps are too big. This has been done so that people can test it out and verify that it does actually work (with the distrust of current node generations lately, I needed to provide this save ability) * Bug fixes. Ok, so I guess I didn't get all the bugs. I planned to, but forgot to do so with everything else on my mind. Sorry. Got them now, though. I'm sure this time, because unlike last time, I fixed them before I am writting this. :) * Ability to flip lines now, (and flip line & sidedefs). Because of dooms pickyness with a sidedef on the right side, you can do this. I really don't think it will be needed anymore, though. DMapEdit will automatically handle these problems for you, but in case I'm wrong (I didn't write Doom, so I can't be sure what will and will not cause problems), this options is here. Note: Be sure to line error-check any map from other editors or previous versions of DMapEdit. Can't hurt anything, and it will fix any minor problems a map may have. (such as a map causing doom to hang or reboot when it loads the map, which happened to me, and thus I was able to fix DMapEdit to repair them) ------------------------ [7] New stuff since v1.1 ------------------------ * Fix of all know bugs! If there's still any around, then let me know, since I can only fix bugs I know about, and if there still are any in there, I don't know about them. * Sector edit mode has been improved. You can add/delete sectors with the proper add/delete mouse buttons (or ins/del keys). There is also a sector blend/copy function now (requested by Rod McCabe, in the first postal letter I have received of 2 total to date :) For information about this function, see below under 'sector editing'. * A new misc/advanced functions menu (F9 key), with several options: * Error checking options: Use these to check over a new map to identify any errors that might exist (and fix some of them). If you get a new PWAD from somewhere, you should error check it before you start messing around with it in DMapEdit. Strange thing might happen if you start editing a map with errors. * Line Fixer: This option will correct any errors or inconsistancies it detects with the lines/sidedefs. It may change things that are meant to be the way they are (the less common special effect type things), so it should probably be used mainly for a major overhaul, or to setup sidedefs for a new map that you have laid out the lines for (easier than doing it by hand!) * Sector generator: This options will reconstruct, from scratch, all the sectors. This should really only be used for a major overhaul, or on a new map without any sectors yet, since any existing sector information will be lost, replaced with a standard sector definition. * Fix sectors: Not yet available, this will attempt to correct any problems with existing sectors, and create new sectors in any empty polygons. The result will be pretty much the same as with the sector generator, except the current sector info will not be trashed, but incorperated. * Node generator: Before a new or line changed map can be played, a node structure must be generated. That is what this option will do. I have fixed all the bugs in it, and tested it out on several maps, and it has worked fine on them all. * Blockmap generator: When you complete a new map, or finish changing an existing map around, the last two steps are to create a Node BSP tree, and a blockmap, before you can play it. The blockmap generator works flawlessly, but the node generator..you know.. * Working PWAD/datafile name and editing mode is now displayed at the bottom of the screen. * Picklist now is scrollable in 2 directions. The old selection is also in the middle of the displayed list now, instead of the top. (for example, the current thing is an ammo clip, and you select picklist, then the ammo clip will be in the center of the displayed list). -------------------- [8] Future expansion -------------------- What can you expect from future versions of DMapEdit? I plan to add template support, so you can add standardized wall formations (doors, columns, staircase, etc.) easily, without having to make them all yourself. Since DoomCad beat me to this idea, I'll support templates created with it, and make DMapEdit's templates usable by DoomCad. This isn't really a problem, since his method of doing it turns out to be very close to how I had planned to go about it. (I think this 'TWAD' idea was a little overboard, though) I plan to add help information to explain whatever you are dealing with at any perticular time. Thus, if you come across something you don't understand, you can request help about it. I plan to add 2 new editing modes: sidedef and all. These are really only needed for doing marking and marking related functions. All mode is there to allow you to mark all objects within a stretch-box, including Things, Vertexes, Lines, and Sectors. Is another mode really needed for this? I've been looking for another way around it, but I haven't come up with anything yet. Ideas from you the user are most welcome. *I plan to add a function to analyze a map and report a difficulty rating for it in each difficult level and in multiplayer mode. So, please send me your ideas on how you think I should rate all the Things (i.e. weighted values) since I really don't have any ideas for this yet. (any authors for other editors wanting to also inplement this idea, let me know and we'll work on it together.) And if anyone has any other great ideas for anything to put in, go ahead and send me your ideas. Just make sure you explain it good. Try to be specific. Sometimes I just can't figure out what you mean when you explain something to me, so try and be specific. Interested in beta testing the next version of DMapEdit? There's only one requirement; You must be a registered user. So, there's a good reason to register. If you are already registered and are interested in a beta, just let me know. Of course, it will be a little while after this version has been out before I will have the next version beta ready. ---------------- [9] Introduction ---------------- So, what all can you do with this editor? Well, you can edit Things, Vertexes, Lines and Sectors, etc, in order to create a new and unique map that can then be played in Doom. If you are lost already, you should go and read the 'concepts.txt' file before reading any further in this file, and then come back here. You can also generate the internal structures that doom needs to operate (Nodes, Sub Sectors, Segments and a Blockmap), which will all need to be made (or remade) in order to play any new or modified map with Doom. You can edit (or just examine) existing maps (from doom, or from PWADs created by other people). Be sure to follow the pwad's author's copyrights for such maps. (Doom doesn't want any modified maps made from their original doom levels to be distributed. In fact, they don't want their unmodified maps to be distributed either, except for with the shareware doom package.) Map making is rather a complex task. There is a lot that goes into making a map, and being able to just 'slap a few lines down, make the nodes and run' really isn't possible. All any editor really does is make the task of creating maps easier, by doing a lot of the stuff for you. This can cut down on what the user is required to know, but there will still be much that he/she will still need to know. Furthermore, the more you know about making maps, the better your maps will tend to be. Therefore, I strongly recommend reading the file 'concepts.txt', included with this package. It will give you an understanding of all the basic concepts of map building. Even if you think you already know it all, I still recommend you read it. You might just find something that you didn't know yet. My goal in writting DMapEdit is to make map generation as simple as possible, while still having the ability to do everything you could possible want to do. Having the ability to do exactly what you want is the main goal. If you think you can't do something, you probably can, but just don't know exactly how to go about it. In such a case, you can read through 'dmapedit.faq' to see if it's covered there. If not, you can read through this file and see if you can find any info about it. If that still doesn't help, you can contact me and I will help you. Please check this file first, though. If it's not in here, and you need to contact me, I will add it to this file (correcting the oversite). At present, I feel that this editor is easier to use than any other out there, while still being nearly equally powerful, and becoming more powerful with every release. If you disagree, and have ideas on how I can make it better (or can just point out what some other editor does better), please let me know. ------------------------------------------------------------------------ Ok, running this program is pretty easy. All the files that DMapEdit comes with should all be in the same place. You can run it without it being in the current directory, if you wish. If Doom.wad or Doom1.wad isn't in the current directory, you will need to tell DMapEdit where it can find this file. This is done by giving the path to it with the -i switch, like so: dmapedit -i/doom/doom.wad or c:\wherever\it\is\dmapedit -ic:\and\doom\is\here\ or by adding a line to the INI file like: doom path=c:/doom Note that either '/' or '\' can be used. Also note that there is no space between the '-i' and the path itself or the '='. This path that you give should either point to the directory the IWAD can be found (an IWAD is what the file 'doom.wad' is) or point to the IWAD itself. Dmapedit defaults to VESA SVGA 640x480x256 colors. If you don't have a VESA card but you do have SVGA, run univesa to create a VESA interface for your card. If you don't even have SVGA, why not? A 386+ without a SVGA card? If you want to use a different graphics interface, or resolution, read about the -v switch at the end of this file. Once the program is up and running, you should see a map of episode 1, mission 1. The program defaults to thing edit mode at startup. At this point, you can move things around by pressing the left mouse button on a thing and dragging it to it's new location. Pressing the left mouse button while not on a thing will add a new thing (using the defaults) and placing it when you releast the button. The right mouse button is used to delete a thing. The middle button (if you have one) is used to change the information about a thing, or the default thing if you are not on a thing at the time you press the button. This is the standard mouse interface I use for this program, and editing vertexes and lines works the same way. -------------------------------- [10] How do I play a map I made? -------------------------------- Once you have made a map, you must save it to a PWAD file. Then you start doom from dos like so: doom -file pwad1.wad [pwad2.wad] [pwad3.wad] [...] In this example, you would have saved your PWAD with the name 'pwad1'. If you used the name 'new', you would type: doom -file new.wad Another thing to note about the first example, you can use more than one PWAD file at once. This would be done for files that have different information in them. If they both use the same information (like both having E1M1 in them), you probably shouldn't do it this way, and really don't have any reason to. You would use this for something like pwad1 having E1M1, pwad2 having E1M2, and pwad3 having new sound effects. (by the way, files is [] are optional, if you havn't figure this out yet. You wouldn't actually type the '[' or ']') ---------------------- [11] Keyboard commands ---------------------- These are all the keyboard commands: (global commands - available in all edit modes) ?: display key commands Arrow keys, home, end, page up, page down: These keys will scroll the map around.. =, +: zoom in -: zoom out _: re-center map alt-q, alt-x, esc: quit and exit editor ins: add (same as left mouse) (see note1) alt-ins: sticky add (see note5) del: delete (same as right mouse button) (see note1) space: change/edit (same as middle mouse button) (see note1) m: mark/unmark selected object alt-m: sticky mark (stretch-box marking) (see note5) 1 - 5: change displayed vertex point size 0: turn off vertex point display t: change displayed things icon size: big, small, off (see note2) \: change displayed lines size (thickness) F1: select thing edit mode F2: select vertex edit mode F3: select line edit mode F4: select sector edit mode F9: misc/advanced options (build nodes, error check, etc) tab: re-configure the mouse buttons s: save map to a PWAD, promting for name first l: load map from a PWAD, promting for name first (see note3) alt-s: save map to a PWAD alt-l: load map from a PWAD (see note3) alt-w: write map to original Doom WAD file (IWAD) alt-r: reload map from original Doom WAD file (IWAD) c: change episode and mission f: change thing display filter (see next section) r: change roundoff level: 1, 8, 16 (default), 32. (see note4) g: change grid display intensity level ., >: increase roundoff level (grid drawn to roundoff level) ,, <: decrease roundoff level n: start a new map from scratch (erase currently displayed map) z: show current statistics (totals, and memory usage) Note1: These are the default mouse buttons. The mouse buttons can be re-configured with the key. Note2: Thing icons can't be turned off while in thing edit mode. There is also a setting that shows circles. This represents the size of the object and is useful to see if monsters overlap, are stuck in walls, etc. Note3: It will try to load a map from the current PWAD. If that map doesn't exist in that PWAD, however, it will load the map from the IWAD. Note4: This is used to round off all map coordinates, so things can be placed with a more symetrical feel. This is also called "snap-to Grid" in some other editors. A value of 1 will not produce any roundoff. The crosshair shows the rounded-off position. The grid display intersections also show the roundoff positions, unless the spacing drops below 8 between the lines, in which case every other line/4th line/8th line/etc will be displayed to meet this condition. This is to not clutter up the screen. Note5: These keys simulate the effect of holding down the equivelant mouse button while moving the mouse around (called dragging). It will remain "stuck" until another key is pressed, or a mouse button. (Thing edit mode) ----- ---- ---- enter: Copy selected Thing to default Thing (Line edit mode) ---- ---- ---- f: flip line (swap left and right sides) (see note6) alt-f: flip line and sidedefs (see note6) Note6: In actuality, the sidedefs are swapped too, so that they seem to be where they were before. In other words, since the left side of the line is now the right side, (and the sidedef hasn't been swapped yet) it will look like, from the users perspective, that the sidedef switched sides, though it didn't really. Thus, alt-f will not swap the sidedefs, but only the vertexes it runs between. (Inside of a window) ------ -- - ------ enter: same as clicking Ok button (if there) alt-q, alt-x, esc: exit out of window (same as clicking Cancel button) tab: move mouse pointer to next button position page-up, page-down: in windows with 2-way scroll buttons, scrolls list ------------------- [12] Pop-up windows ------------------- Pop-up window manipulation has become a little complex, so I figured I should put in a section to cover it. Pop-up windows are rectangles with a yellow boarder that appear with information inside it. There are 2 basic types. The first doesn't have an Ok or Cancel button. This is an informational window, and just gives you information. Pressing any key or clicking the mouse anywhere on the screen will make it go away. The second type is the interactive window (also called edit window window), and will have a Cancel button, and usually an Ok button. To close this type of window, you must click on the Ok or Cancel button. If an Ok button isn't there, making a selection from inside the window will automatically to an Ok operation. The Ok button will exit the window, using the window's current information. Selecting Cancel, however, will ignore anything that occured in the window. Another function these buttons can be used for is for confirmation of some operation you selected. In this case, you must select Ok to proceed. A similar sort of button you may see is the 'big button'. This button also has text inside it, but is white, and is always inside the window. Selecting such a button will perform the action the text describes. Usually, edit windows will have small, circular buttons, which is the main form of doing any 'editing' in the window. Just click the button next to what you are interested in changing. These 'radio' buttons do one of 2 things: switch states ('on' or 'off' condition), or select item. Buttons that select an item will never be filled in. Inactive radio buttons will be displayed as dimmed (dark gray instead of white). This doesn't always mean you can't select them, however. Try clicking on it to see. When editing a group of marked items, only the non-dimmed items will be changed when you select Ok. So, this being the case, you need to be able to change what's dimmed and what isn't. To do this, you can select the button normally, and it will activate automatically, or you can click on the button with the middle mouse button (spacebar) to toggle the active status of the button. Only buttons that can logically be toggled will be allowed to be toggled. ------------------------- [13] Thing display filter ------------------------- Things are not always on every difficulty level. Generally, harder difficulty levels tend to have more monsters running around. The thing display filter is to allow you to display only what you want to display, such as only level 1 things. Using this filter is a little tricky, however. There are 5 different flags used by all things in doom: flag 1: skill level 1 & 2 flag 2: skill level 3 flag 3: skill level 4 & 5 flag 4: deathmatch mode flag 5: deaf monster Skill level 1 being "don't hurt me" and 5 being "Nightmare". If a skill level flag is set, then this thing will appear to a player playing on that skill level. If the deathmatch mode flag is set, then this thing will only appear when playing a deathmatch mode game. Note that this flag is in addition to the skill level flag. If you just set the deathmatch mode flag and leave all three skill level flags cleared, then the thing will never appear in any deathmatch mode game. The deaf monster flag is only useful with monsters. If it is set, then monster will only "activate" (come alive) upon spoting a player or being attacked. If the monster isn't deaf, then it will also "activate" whenever it hears a players weapon being used (even punching air will do it). There are 2 switches for each of these flags in the filter. There are a total of 4 possible combinations for these 2 switches. The first switch is used as a matching state. The second switch is set if you want to force the first switch to match a flag exactly. This may be confusing, so I will detail the 4 possible switch combinations.. Combination 1: both switches off (O O) With this combination, the flag is ignored and not displayed. If all 4 flags have this combination, nothing will be displayed. Combination 2: first switch on, second off (* O) This will display the thing if the flag is set. If the flag isn't set, the thing may still be displayed if another flag with this combination is set. This is a basic OR situation between flags. Combination 3: first switch off, second on (O *) For a thing to be displayed with this combination, the flag must be off. If the flag is on, the thing will not be displayed, regardless of the other flag settings. This is used to hide what you don't want displayed. combination 4: both switches on (* *) With this combination, similar to combination 3, the flag must be on to display this thing. Unlike combination 2, a thing will not be displayed if the flag is off, period. Other flags have no effect on it. Common filter settings: O = off, * = on Display level 1 & 2 things: Skill level 1 & 2: * O Skill level 3: O O Skill level 4: O O Deathmatch mode: O O Display only level 4 things, non-deathmatch mode: Skill level 1 & 2: O O Skill level 3: O O Skill level 4: * O Deathmatch mode: O * Display all things: Skill level 1 & 2: * O Skill level 3: * O Skill level 4: * O Deathmatch mode: * O Display only Deathmatch mode things: Skill level 1 & 2: O * Skill level 3: O * Skill level 4: O * Deathmatch mode: * O Display only things unique to level 4: Skill level 1 & 2: O * Skill level 3: O * Skill level 4: * O Deathmatch mode: O O Personal note: I think it would be an excellent idea for id to have made another flag for 'respawn'. This way you could make certain monsters respawn (appearing at their original starting location), instead of either all monster respawn or none. It would also avoid such things as a second cyber-demon appearing, which really ruins the whole idea behind having respawn in the first place. You could also have different amounts of monsters respawn at different difficulty levels. (for example, 5 at ultra-violence and 15 at nightmare). I can't beleive that adding this would be very hard programming-wise. You have a bunch of empty flags, you have already written the respawn routines.. Wish I knew how to get this idea to id . ------------------ [14] Thing editing ------------------ Editing things is very easy. If you want to move a thing to somewhere else on the map, just click on it with the left mouse button, and drag it to it's new location while holding the button down. To delete something from the map, click on it with the right mouse button. And, to add a new thing to the map, click the left mouse button while the mouse isn't on a thing. (it will be placed when you release the button, so you can drag it around too.) You can tell if you are on a thing by a box around the thing. If you see this box around it, then that is the thing currently selected. Information about this currently selected thing is displayed at the top of the screen. To change the currently selected thing, press the middle button (or the spacebar). This will bring up all information about the thing. To change any of this information, simply select the proper button. If you press the middle button (or the spacebar) while a thing isn't selected, then you can change the default thing's information. The default thing is used whenever you add a new thing to the map. Lastly, pressing the Enter key will scan the selected thing's information into the default thing. ----------------- [15] Line editing ----------------- I have tried to make the line editing mode as useful and intuative as possible. I have also tried to put as many abilities in this one mode as I could. As a result, you shouldn't need to use vertex edit mode very much, if at all. To use this mode effectively, however, you need to know how to use it properly. So, here goes.. When you move the mouse cursor around the screen, it will lock onto the closest line, and the closest vertex, if it's not too far away. If you have a line selected, you can use the spacebar (middle mouse button) to edit that line's characteristics, and it's sidedefs. Also, when a line is selected, information about it is displayed at the top of the screen. Sidedef info is also displayed. Each line has 2 sidedefs (or possible sidedefs, anyway), a left sidedef and a right sidedef. Whichever side of the line the mouse cursor is on is the sidedef that is displayed. When editing the selected line, a small dot will mark this sidedef as well. Note: When a linedef that triggers an event is hilighted, the effected sector(s) are also hilighted, using a dotted lines. Adding a line (left mouse button): A line is added by pressing the left mouse button at the starting point, and releasing the button at the ending point. Pressing the button when a vertex is selected (hilighted) will start the line at this vertex. If a vertex is not selected, a new vertex is added, and becomes the starting point for the line. Releasing the button when a second vertex is selected will make that vertex the ending point. Otherwise, a vertex is added and is used for the ending point. One last possible situation is having a line selected, but not a vertex. When you press the left mouse button here, a vertex is added, spliting the line into two parts. Deleting a line (right mouse button): Simply select the line you wish to delete, and press the button. Doing this will leave a gap where the line was. If you use the vertex edit mode to delete a vertex, it will reroute all the line that went to that vertex to the closest vertex along that vertexes lines (deleting a line in the process). Please note that lines may switch sides from time to time. This is because Doom is very picky about having the 'important sidedef' on the right side. This means that if you only have one sidedef, it must be on the right side, so DMapEdit will flip the line around if needed to make it so. Also, if a line has two sidedefs, and only one sidedef has any textures, it must be on the right side. Again, DMapEdit will make this so. You don't have to worry about these details, just edit your map however you want to, and DMapEdit will make these changes as needed. ------------------- [16] Sector editing ------------------- Once you have all your lines in place, all forming closed polygon shapes, you need to make sectors. Any location (polygon) a player or monster is allowed to be in needs to be a sector. A sector definition tells doom what heights the floor and ceiling is at for the polygon, as well as how much light there is there. If you are making a new map, and have put in all the lines, but have done nothing with the sectors yet, select "generate sectors" from the advanced options menu. This will examine your map and automatically assign a sector to every polygon that needs one. (be sure your lines are set up correctly, however. Use "fix lines" or "error check lines" first) Then, you can simply edit the various sectors to your liking. Sector edit mode is selected with the F4 key. In this mode, the mouse will hilight whatever sector the mouse is in (if the sectors aren't damaged). Information about the sector is displayed at the top of the screen. The spacebar or middle mouse button will let you edit this sector information. Note: When you hilight a sector that is triggered with a linedef(s), the linedef(s) will be hilighted too, using a dotted line. If you want to make a new sector where there currently isn't one (no lines hilight), or want to fix a damaged sector (only some lines hilight), simply press the left mouse button (or insert key) to create a new sector there. It will remove whatever sector(s) were there, if any. The sector will have the characteristics of whatever sector most of the lines seemed to be linked to. If it was totally empty, it will assume the standard sector definition. If you want to remove a sector (making a pillar solid, for example, so a player can't be inside it) simply press the left mouse button (or delete key) while the sector is hilighted. If a sector is damaged for some reason, you should remake it first (left mouse button) and then remove it. In order for a player or monster to fit inside the sector, there must be a different of 7 between the floor and the ceiling. This is the minimum. A difference of 6 will make it impossable to enter the sector. Also, a floor height difference of 3 can be climbed, but a difference of 4 is too high a step to climb. The player can fall down a step of any height. Another option available in sector edit mode is the blend/copy function. You press "B" while in sector edit mode to get the blend/copy setup screen. Information from the hilighted sector is used to fill in information on this screen. You can change the initial sector information to be used, though, on this screen. You will also see adjustment factors to the right. This is how much it will change the initial values by each time. For example, having a floor height of 4, and an adjustment factor of +2 will make the first sector floor height 4, the next 6, the next 8, etc.. Using an adjustment factor of zero will basically perform a copy operation (the initial value never changes). This can be useful to set a bunch of sectors to one light value, or ceiling height, or whatever. If you select the button that's already on, you will turn it off, so that no adjustment factor is selected. When you do this, this Sector characteristic is ignored, and thus not changed when you blend/copy. This can let you change only the floor heights, for example, and not the light or ceiling levels. Or, you can simple change the ceiling to the sky texture for a group of sectors without changing anything else about the sectors. As you can see, this can be quite handy. Once you have the setup set properly, select the Engage button. You will now be in blend mode. The top line will display what values you are currently at. To set a sector to these values, simply click on the sector, and the sector will be updated. This will also adjust each value by it's adjustment factor, and you are now ready to update the next sector. This is very useful for making stairs. Simply click on each stair, in order, until you are done. To get out of blend mode, simply press escape, or the right mouse button (or delete key). To get back to the blend mode setup screen, press "B" again, or the middle mouse button (or spacebar). ------------ [17] Marking ------------ Objects can be marked to perform an operation on them as a group. Marking is done using the 'm' key, or clicking on an object with the marking mouse button. By default, there isn't a mouse button for this, so you will have to reconfigure the mouse buttons with the key. You can also mark objects with a stretch-box by dragging with the mouse button, or pressing 'alt-m'. Objects that you mark will also mark other objects that they affect. For example, if you mark a sector, it will also mark all the lines, sidedefs, and vertexes that sector uses. Thus, you can mark objects in one mode, and then switch to another mode to do an operation on it, such as marking a sector, and then switching to line edit mode to change the lines of that sector. The backspace key will unmark all objects currently marked. With a group of objects selected, you can move the whole group with the add button. You can delete the group (effect depends on the edit mode you are in) with the delete button. After you do a delete, there will not be any objects marked. And finally, you can edit the group of objects (vertexes can't be edited, since they have no properties). You would edit the objects just as if you were editing a single object, except changes will be made to all of the marked objects. To tell what will and won't be changed, the buttons will be normal or dimmed. If it is dimmed, this property will not be changed (changing only occurs when you exit the edit window). If you change something, but then decide you don't want to change this after all, you can toggle the button dimming with the middle mouse button (spacebar). copy. ---------------------------- [18] Making maps from scatch ---------------------------- Map generation starts with putting vertexes and lines where you want them. This lays the foundation for everything else. Once all the lines are in place, you need to make sidedefs for these lines (unless you do so along the way while you are creating the lines). The easiest way to do this is to select the "Fix Lines" options from the advanced options menu (F9). If you already have sidedefs setup, then you should at least error check the lines, just to make sure it's all ok. Once this is done, you need to make all the Sectors. If you have all the sidedefs where you need them, you can use the "Generate Sectors" option from the advanced options menu. This will put make sectors for every polygon on the map. Another method you can use is to simply enter sector edit mode and add sectors manually to each polygon. One advantage to this method is that you don't need to have the sidedefs in place. It will create the sidedefs if it needs to for lines as it goes along. At this point, you have the vertexes, lines, sidedefs, and sectors all created. However, they are all most likely set to standard values (walls are all brown1 texture, sectors are all the same heights and textures, etc), so you will need to go in and set them to the values you want them to be at. By the way, Things can be added at any time along the process of making a new map. It's usually better to do so after the lines are drawn, though, so you know where to put them, but you are the boss. When you have everything set the way you want it, it's time to generate Nodes, and a Blockmap. Making a Blockmap is fairly quick, so you might want to do this first. I also recommend you save your map before you generate these two structure. In fact, I recommend you save your map often! Anyway, once you have made your Blockmap and Nodes, save your map, and enjoy playing your new map! Notes: Maps must have all areas enclosed by lines, forming a polygon. A map with only 3 lines, for example, in an open ended box shape, isn't complete. Keep in mind that a line doesn't have to be a wall. Lines are required anywhere you wish to: change floor or ceiling height change lines angle change wall, floor, or ceiling patterns change lighting change floor hurt-player damage Also, every map should have a starting point for all four possible players. You should also have, minimum, 4 deathmatch mode starting points. And, of course, you should have an exit. ---------------- [19] Misc. notes ---------------- Changing a map's episode and mission number: Suppose you want to change a map from E1M1 to E2M2. How does one do this? Simple. Just press 'C' to 'change map'. Now, select the episode/mission you want it to be. Once you do this, just click outside the window (or press Esc) and now your map has a new episode/mission value. At this point you can save it to a PWAD or whatever. This can be useful for taking several one-map PWADs and putting them all into one big PWAD. -------------------------- [20] Alternate video modes -------------------------- DMapEdit defaults to 640x480x256 colors, svga. You can select other video modes if you wish, however. 640x400 is the minimum, however. DMapEdit will not run in resolutions lower than this. 256 colors are also required. DMapEdit does not support more than 256 colors. To make DMapEdit run in other video modes, use the '-v' switch. dmapedit -vmode Mode: This is a number, from 0 to 4. These are what each represents: 0: 320x200 (VGA/MCGA) (Mode not usable with DMapEdit) 1: 640x400 2: 640x480 (default) 3: 800x600 4: 1024x768 ----------- [21] Thanks ----------- I'd just like to say thanx to the following people: Paul Hagstrom: For being my internet contact originally back before I had an account. James Sterrett: For the very first registration I received. Alistair Brown: For finding that insanity-causing bug in the node generator. I'm recovering quite nicely now.. Rod McCabe: For his letter and ideas. (quite a while ago, though) Pierre Fournier: For tracking down that intermittent bug in the picklist so well for me. I'd see it from time to time, but couldn't figure out how to re-create it, until Pierre came along. DEU authors: For making their editor's source available. I learned a few tricks from it. PWAD creators everythere: For making fun PWADs for me to play when I get bored! Registered users: For registering! :) Cameron Booth: Beta tester and idea suggestor. joost schuur: Beta tester and idea suggestor. Matt Fell: For creating the Unofficial Doom Specs, making this problem even possible. id: For creating Doom in the first place. Great game guys. :)